package collection;

import java.util.*;

/**
 * java .util.List接口 通常称为:线性表
 *
 * 常用实现类:
 * java.util.ArrayList:内部使用数组实现,查询性更好
 * java.util.LinkedList:内部使用链表实现,增删性能更好,首尾删除元素性能最佳
 * 在对集合操作性能没有特别苛刻要求通常首选为ArrayList
 */
public class ListDemo {
    public static void main(String[] args) {
        List<String>list=new ArrayList<>();
       // List<String>list=new LinkedList<>();

        list.add("one");
        list.add("two");
        list.add("three");
        list.add("four");
        list.add("five");
        System.out.println(list);
        /*
        E get(int index)
       获取给定下表处对应的元素
         */
        //获取第三个元素
        String str=list.get(2);
        System.out.println(str);
        for (int i=0;i<list.size();i++){
            str=list.get(i);
            System.out.println(str);
        }
        /*
        E set(int index,E e)
        将给定元素设置到指定位置,返回值为该位置被替换的元素
         */
        //[one,six,three,four,five]
        list.set(1,"six");
        System.out.println(list);

        //反转集合

        //[five,four,three,six,one]
        for (int i=0;i<list.size()/2;i++){
//            String e=list.get(i);获取正数位置上的元素
//            e=list.set(list.size()-1-i,e);将正数位置上的元素存入倒数位置上
//            list.set(i,e);
            list.set(i,list.set(list.size()-1-i,list.get(i)));

        }
        //[five,four,three,six,one]
        System.out.println(list);
        Collections.reverse(list);//反转集合
        System.out.println(list);



    }
}
